Procesamiento de imágenes (Traslación, Escala, Rotación, Inclinación) (página 2)
¿Cómo obtener la transformación de inclinación?
Ejemplo. Inclinación en X de cantidad ix.
(xa, ya) = (xr-g, yr). Pero, ¿cuánto vale g?
Por analogía de triángulos: g/yr = ix/1 ? g= ix·yr
Inclinación en X en cantidad ix:
R(x, y):= A(x – ix·y, y)
ix
X
Y
xa
Punto en A
Punto en R
(xa, ya)
1
ya
(xr, yr)
g
De manera similar… inclinación en Y en cantidad iy:
R(x, y):= A(x, y – iy·x)
Inclinación X en ix, Y en iy:
R(x, y):= A(x – ix·y, y – iy·x)
Matricialmente:
R(x,y):= A(
·
)
Ejemplos.
Inclinación ix=-0,4; iy=0
Inclinación ix=0; iy=0,2
Parte de la imagen se sale.
Solución: igual que antes, aplicar un desplazamiento para centrar el resultado. ¿De cuánto?
O bien, ampliar el tamaño de la imagen resultado para que quepa toda la imagen.
¿Cuánto? ? En X: abs(ix)·mY; en Y: abs(iy)·mX
Ejemplos.
Inclinación iy=0,2
Inclinación ix=0,1;iy=0,3
Inclinación ix=-0,4
¿Qué tienen en común todas las transformaciones afines?
Todas ellas se pueden expresar de forma matricial:
R(x,y):= A(
·
)
Traslación
Escala
Rotación
Inclinación
Es más, cualquier combinación de transformaciones afines es una transformación afín, y se puede expresar de forma matricial.
+
Podemos definir una transformación afín genérica:
R(x,y):= A(
·
)
La matriz ((c11,c12,c13),(c21,c22,c23)) son los parámetros de la transformación. Puede implicar escalas, traslaciones, rotaciones, etc.
¿Cómo calcular la tr. afín equivalente a dos tr. afines?
Usar el producto matricial, añadiendo una fila con (0, 0, 1).
x
=
+
Ejemplo. Sobre una imagen aplicamos 1º) traslación (a, b), 2º) escala (c, d), 3º) rotación e, y 4º) traslación (f, g).
Podemos calcular la matriz de transformación equivalente:
x
x
x
=
En lugar de aplicar 4 transformaciones sobre toda la imagen, basta con aplicar la transformación equivalente.
Uso. Una transformación afín permite “mapear” una región rectangular cualquiera en un rombo cualquiera. O, en general, cualquier rombo en otro rombo (se supone que un rectángulo es también un rombo).
¿Cómo calcular los parámetros de esta transformación?
Problema: dado un rombo en la imagen original y otro rombo en la imagen de destino, calcular la transformación afín que realiza ese mapeo.
Transformación afín genérica
+
Nota: un rombo queda completamente definido por 3 puntos.
6 incógnitas (cij) ? Necesitamos 6 ecuaciones para resolverlas. ¿Cuáles?
Cada punto producedos ecuaciones:
X
Y
Coordenadas en A
(x1a, y1a)
(x2a, y2a)
(x3a, y3a)
X
Y
Coordenadas en R
(x1r, y1r)
(x2r, y2r)
(x3r, y3r)
Transformación afín genérica ((c11,c12,c13), (c21,c22,c23))
·
=
+
Ecuaciones a resolver:
c11x1a + c12y1a + c13 = x1r c21x1a + c22y1a + c23 = y1r
c11x2a + c12y2a + c13 = x2r c21x2a + c22y2a + c23 = y2r
c11x3a + c12y3a + c13 = x2r c21x3a + c22y3a + c23 = y3r
6 ecuaciones y 6 incógnitas ? Se resuelven las incógnitas (método de Cramer) y despachados.
Existirá solución si los 3 puntos de A no están en la misma recta, y los 3 de R tampoco.
Una vez resueltas las incógnitas, aplicamos la transformación afín buscada:
R(x,y):= A(
·
)
Ejemplo 1. La aplicación más inmediata y típica de las transformaciones afines es extraer y redimensionar un área de interés, dándole una forma predefinida de antemano. Esto es lo que se llama normalización.
Por ejemplo, detectar una cara humana, seleccionar los ojos y la boca y mapearlos a un rectángulo predefinido.
Imagen de entrada
Cara detectada
Cara normalizada
Transf. afín
Este proceso de normalización se puede aplicar sobre vídeo, para conseguir una estabilización de los objetos de interés.
Ejemplo 2. La normalización es fundamental en muchas aplicaciones de reconocimiento de objetos, como los OCR (Optical Character Recognition).
Se aplica: umbralización, segmentación, normalización y comparación.
Imagen de entrada
Umbralizar
Rectificar: detectar orientación y rotar
Sería conveniente una técnica adaptativa
Segmentar los caracteres
Normalizar cada carácter a un tamaño estándar
Texto rectificado
Aquí se usan integrales proyectivas
Detectar y separar las líneas
Comparar con un conjunto de patrones (p.ej. diferencia)
Tomar el máximo
¡¡Es una “a”!!
a
e
i
Página anterior | Volver al principio del trabajo | Página siguiente |